package org.oos;

import static org.junit.Assert.assertTrue;

public class AssertException
{

    public static interface Command
    {
	public void run() throws Exception;
    }

    public static void assertException(Command command,
	    Class<? extends Exception> exception)
    {
	try
	{
	    command.run();
	    assertTrue(false);
	} catch (Exception e)
	{
	    // ignore
	}
    }

//    /**
//     * Attempts to retrieve a {@link SiteDao} and reports if it
//     * produces an exception
//     * 
//     * @param provider
//     * @param token
//     * @return the exception produced
//     */
//    public static void assertException(DaoProvider<?> provider,
//	    APPToken token, Class<? extends Exception> exception)
//    {
//	try
//	{
//	    provider.setToken(token);
//	    assertTrue(false);
//	} catch (Exception e)
//	{
//	    // ignored
//	}
//    }

//    /**
//     * Attempts to retrieve a {@link UserServiceDao} and reports if it produces
//     * an exception.
//     * 
//     * @param provider
//     * @return the exception produced or null if no Exception is produced.
//     */
//    public static void assertException(SecureServiceProvider provider,
//	    Class<? extends Exception> exception)
//    {
//	try
//	{
//	    provider.getUserServiceDao();
//	    assertTrue(false);
//	} catch (Exception e)
//	{
//	    // ignored
//	}
//	
//    }

//    /**
//     * Attempts to create a secureException and reports an exception if it
//     * occurs.
//     * 
//     * @param token
//     * @param credentials
//     * @return the exception produced or null if no Exception is produced.
//     */
//    public static void assertException(APPToken token,
//	    OOSCredentials credentials, Class<? extends Exception>... exception)
//    {
//	boolean result = false;
//	try
//	{
//	    SecureServiceProvider provider = new SecureServiceProviderImpl();
//	    provider.setCredentials(credentials);
//	    provider.setToken(token);
//	    provider.getUserServiceDao();
//	} catch (Exception e)
//	{
//	    for (Class<? extends Exception> class1 : exception)
//	    {
//		result |= e.getClass() == class1;
//	    }
//	    
//	}
//	assertTrue(result);
//    }

}
